#ifndef STATECTRL_H
#define STATECTRL_H
#include<math.h>
namespace STATECONTROL {

enum STATECTRLPARA{
    INTERVAL=50,//采样间隔
    CALIBRATE=35,
    STATETIMES=3,
    FORCETHRESHOLD=2
};

enum StateCode{
    FORCETHRENOTSET=0,    //0，没有设置力的阈值
    ISERROR=-1,    //-1，error
    ADJUSTING=-2,    //-2,正在重定位力网格
    STARTDRILL=-3,    //-3,开始执行钻削
};

typedef int state_code;
//state_code>0, 表示现在处于第几个状态。
//0，没有设置力的阈值
//-1，error
//-2,正在重定位力网格
//-3,开始执行钻削


class StateController
{
public:
    StateController();

    void initController();

    int stateRecognize(const double axialFroceNow);

    int getAuTimes() const;
    void setAuTimes(int value);

    double getForceThre() const;
    void setForceThre(double value);


    int stateNow;

private:

    double forceThre;
    int auCount;
    double auCurr;
    double auSave;
    int auTimes;
    double auSign;
    bool auRecal;

};

}

#endif // STATECTRL_H
